วิธีแก้ปัญหาหากทำ Key Pair หายหรือต้องการเปลี่ยน Key Pair ใน Amazon Lightsail
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้จะมาแนะนำวิธีแก้ปัญหาหากทำ Key Pair หายหรือต้องการเปลี่ยน Key Pair ใน Amazon Lightsail
สิ่งที่ต้องมี
※1. ติดตั้งโปรแกรม PuTTY แล้ว
สำหรับผู้ใช้งานที่ยังไม่ได้ติดตั้งโปรแกรม PuTTY สามารถดาวน์โหลดได้ที่ลิงก์: Download PuTTY
※2. เปิดใช้งาน WordPress ด้วย Amazon Lightsail แล้ว
ครั้งนี้เราจะดำเนินการโดยใช้สภาพแวดล้อม WordPress (สามารถใช้ในสภาพแวดล้อม Linux อื่นๆ ได้ด้วย)
ดูตัวอย่างการเปิดใช้งาน Application ได้ที่ลิงก์ด้านล่างนี้
ก่อนอื่นต้องเข้าใจก่อนว่าหลังจากสร้าง Lightsail Instance เสร็จแล้ว จะมี Key Pair ที่เป็นค่าเริ่มต้นถูกสร้างขึ้นมาพร้อมกับ Instance โดยอัตโนมัติ
สำหรับผู้ใช้งานที่ทำ Key Pair หายหรือต้องการเปลี่ยน Key Pair ให้ดูวิธีการในขั้นตอนถัดไป
การสร้าง Key Pair ใน Amazon Lightsail
เมื่อสร้าง Lightsail Instance เสร็จแล้ว เราจะสร้าง Key Pair เพื่อใช้ทำการเปลี่ยนจาก Key Pair(Default) เป็น Key Pair ตัวที่จะสร้างในขั้นตอนนี้
คลิก Account ⌵
ที่แท็บด้านบนขวา แล้วเลือก Account
จะเห็นว่ามีทั้ง Custom keys และ Default keys ซึ่งเราจะใช้แบบไหนก็ได้ แต่ครั้งนี้จะใช้ Custom keys โดยคลิกที่ + Create key pair
เลือก Select a region ให้ตรงกับที่สร้าง Instance ครั้งนี้คือ Singapore
แล้วคลิก Create
แล้วป้อนชื่อใน Create a new SSH key pair ที่ต้องการ ครั้งนี้คือ tinnakorn-kp
แล้วคลิก Generate key pair
เมื่อถึงหัวข้อ Key pair created! จะเห็นข้อความ "You can only download this private key once." คือเราสามารถดาวน์โหลด private key นี้ได้เพียงครั้งเดียวเท่านั้น ก็ให้คลิก Download private key
แล้วไฟล์จะถูกดาวน์โหลดโดยอัตโนมัติ
เมื่อดาวน์โหลดแล้วให้คลิก Okey, got it!
เมื่อเสร็จแล้วจะแสดงหน้าจอแบบนี้
การเปลี่ยน Key Pair
กลับไปที่หน้าแรกของ Amazon Lightsail โดยคลิกแท็บ Home
ด้านบนซ้าย แล้วเลือกแท็บ Instances
แล้วคลิกเข้าไปที่ Instance ของเรา
แล้วดูที่แท็บ Connect ซึ่งใน Amazon Lightsail ไม่มีฟังก์ชันให้เปลี่ยน Key pair ดังนั้นเราต้องทำการเปลี่ยนใน Server Linux ของ Instance
ก่อนอื่นต้องเตรียม Public key ดังนี้
เปิดโปรแกรม PuTTYgen ขึ้นมาโดยกดปุ่ม Windows
ที่แป้นพิมพ์ แล้วป้อนคำว่า PuTTYgen
แล้วเลือก PuTTYgen
เมื่อเปิดโปรแกรมขึ้นมาแล้วจะแสดงหน้าจอแบบนี้ แล้วคลิก Load
ที่ Load an existing private key file
ไปที่โฟลเดอร์เก็บไฟล์ Key pair ของเรา แล้วเปลี่ยนประเภท filename extension ด้านล่างขวาสุดจาก "PuTTY Private Key Files (*.ppk)" เป็น All Files (*.*)
แล้วเลือกไฟล์ Key pair
ของเรา แล้วคลิก Open |▼
(หรือดับเบิ้ลคลิกก็ได้)
แล้วจะมีหน้าจอ PuTTYgen Notice แสดงขึ้นมา ให้คลิก OK
เพื่อบันทึกในรูปแบบของ PuTTY
Public key นี้ ซึ่งในตอนแรกมันเป็น Private key ของ Key pair(Default) แต่ตอนนี้เราเปลี่ยนมันเป็น Public key ของ Key pair ตัวใหม่เรียบร้อยแล้ว และเราจะใช้ Public key นี้ในภายหลัง ดังนั้นให้คัดลอกในช่องสีแดงเตรียมไว้
กลับมาที่หน้าจอ Instance ของเรา แล้วเปิดหน้าจอ Terminal โดยคลิก Connect using SSH
ในหัวข้อ Connect to your instance ในแท็บ Connect (หากเชื่อมต่อกับ Instance อยู่แล้ว ให้ข้ามขั้นตอนนี้ไปได้เลย)
แล้วแก้ไขไฟล์ authorized_keys โดยรันคำสั่งตามนี้
nano ~/.ssh/authorized_keys
เมื่อเข้ามาที่ไฟล์ authorized_keys ให้ลบเนื้อหาของ Private key(Default) ออกให้หมดโดยกดปุ่ม Delete ค้างไว้
แล้ววาง Public key ที่คัดลอกมาโดยคลิกขวาที่หน้าจอ Terminal แล้วเลือก วาง/Paste
ก็จะแสดงผลลัพธ์ตามด้านล่างนี้
[ผลลัพธ์] แล้วให้ Save โดยกดปุ่ม Ctrl+X
ตามด้วยกดปุ่ม Y
เพื่อ Save แล้วกดปุ่ม Enter
tinnakorn-wordpress - Terminal | Lightsail - Google Chrome
<xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ imported-openssh-key
เพียงเท่านี้ขั้นตอนการเปลี่ยน Key Pair ก็เสร็จเรียบร้อยแล้ว ต่อไปเราจะมาทดสอบการเชื่อมต่อจาก WinSCP ไปยัง Lightsail Instance กัน
การเชื่อมต่อจาก WinSCP ไปยัง Lightsail Instance
เนื่องจากผมได้เขียนบทความการเชื่อมต่อจาก WinSCP ไปยัง Lightsail ไว้แล้ว ให้ดูวิธีการที่ลิงก์บทความด้านล่างนี้ โดยใช้ Key pair ตัวที่สร้างใหม่
ทำการเชื่อมต่อ ! ถ้าเราสามารถเชื่อมต่อจาก WinSCP ไปยัง Lightsail Instance ได้ก็ถือว่าการตั้งค่าทั้งหมดถูกต้อง
สรุป
หากเราเผลอไปลบหรือทำ Key pair หายไปด้วยสาเหตุอื่นๆ เราสามารถแก้ไขได้ง่ายๆ โดยสร้าง Key pair ตัวใหม่ขึ้นมาแล้วเชื่อมต่อเข้าไปที่ Linux แล้วทำการตั้งค่าโดยลบ Private key ของ Key pair(Default) ออก แล้วเพิ่ม Public key ของ Key pair ตัวใหม่เข้าไป แล้วทดสอบการเชื่อมต่อจาก WinSCP ไปยัง Lightsail Instance ถ้าเชื่อมต่อได้ก็ถือว่าการตั้งค่าทั้งหมดถูกต้อง
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP จากบริษัท Classmethod (Thailand) ครับ !